QÅFç¿ïWãÛä‘ÇÉVÉAÅ[ïœå`Ç∑ÇÈ NSAffineTransform ÇçsǧDžÇÕÅAÇ«ÇÃÇÊǧDžÇ∑ÇÍÇŒÇÊÇ¢Ç≈ǵÇÂǧǩÅB AÅFÉAÉtÉBÉìïœä∑ÇégópǵǃÅAç¿ïWãÛä‘Ç…îCà”ÇÃâÒì]ÅAägëÂÅEèkè¨ÅAÉVÉAÅ[ïœå`ÇÃëgÇ›çáÇÌÇπÇìKópÇ≈Ç´Ç‹Ç∑ÅBÉAÉtÉBÉìïœä∑ÇÕêîäwìIÇ…ÇÕã…ÇflǃíPèÉÇ≈ÅAQuartz 2D ÇÃÉ}ÉjÉÖÉAÉãÇÃDZDZDžê‡ñæÇ™Ç†ÇËÇ‹Ç∑ÅB NSAffineTransform ÉNÉâÉXÇÃÉ}ÉjÉÖÉAÉã Ç…ÇÕÅAÉVÉAÅ[ïœå`ÇÕâ¬î\ÇæÇ™ïœä∑ç\ë¢ÇÃìKêÿÇ»ílÇíºê⁄ê›íËÇ∑ÇÈïKóvǙdžÇÈÅAÇΔèëÇ©ÇÍǃǢNjÇ∑ÅBDZÇÍÇÇÊÇËä»íPÇ…é¿åªÇ∑ÇÈï˚ñ@ÇÕÅAObjective-C category ÇégópǵÅAÉNÉâÉXÇ…ÉÅÉ\ÉbÉhÇí«â¡ÇµÇƒÅAÉVÉAÅ[ïœå`ÇÃílÇê›íËÇ∑ÇÈDZÇΔÇ≈Ç∑ÅB
ÉäÉXÉg 1.NSAffineTransform_Shearing.h
|
#import <Cocoa/Cocoa.h>
@interface NSAffineTransform (Shearing)
- (void) shearXBy:(float) xShear yBy:(float) yShear;
- (void) shearXBy:(float) xShear;
- (void) shearYBy:(float) yShear;
@end
|
ÉäÉXÉg 2.NSAffineTransform_Shearing.m
|
@implementation NSAffineTransform (Shearing)
- (void) shearXBy: (float) xShear yBy: (float) yShear;
{
NSAffineTransform
*shearTransform = [[NSAffineTransform alloc] init];
NSAffineTransformStruct
transformStruct = [shearTransform transformStruct];
transformStruct.m21 = xShear;
transformStruct.m12 = yShear;
[shearTransform setTransformStruct:transformStruct];
[self appendTransform:shearTransform];
[shearTransform release];
}
// ìØéûÇ… 1 ǬÇÃé≤ÇæÇØÇÉVÉAÅ[ïœå`ǵÇΩÇ¢èÍçá...
- (void) shearXBy:(float) xShear { [self shearXBy:xShear yBy:0.0]; }
- (void) shearYBy:(float) yShear { [self shearXBy:0.0 yBy:yShear]; }
@end
|
DZÇÃéËñ@ÇégÇ¡ÇΩÉRÅ[ÉhÇÃó·ÇÕÅATransformed Image ÉTÉìÉvÉãÉRÅ[ÉhÉvÉçÉWÉFÉNÉgÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB
[2004 îN 1 åé 29 ì˙]
|